草庐IT

MySQL GROUP_CONCAT 转义

全部标签

javascript - 正则表达式转义括号

我尝试了不同的方法来在JavaScript中使用正则表达式来转义括号,但我仍然无法使其工作。这是字符串:"abc(blah(blah)blah()...).def(blah()(blah)..()...)"我希望这个被检测到:abc().def()使用此代码,它返回false。str.match(/abc\([^)]*\)\.def\([^)]*\)/i);你能告诉我为什么我的正则表达式不起作用吗? 最佳答案 此正则表达式将匹配您提供的字符串:(abc\().+(\)\.def\().+(\))并且使用反向引用$1$2$3将产生ab

javascript - Javascript输出JSON内容时,HTML转码应该在服务端转义还是在客户端转义?

我有一个应用程序,它包含一个用PHP编写的服务器端RESTAPI,以及一些使用此API并使用它生成的JSON来呈现页面的客户端Javascript。所以,这是一个非常典型的设置。RESTAPI提供的数据是“不受信任的”,因为它正在从数据库中获取用户提供的内容。因此,例如,它可能会获取如下内容:{"message":"alert("Gotcha!")"}显然,如果我的客户端代码要将其直接呈现到页面的DOM中,那么我已经创建了一个XSS漏洞。因此,此内容需要先进行HTML转义。问题是,输出不可信内容时,应该在服务端转义,还是在客户端转义?即,我的API应该返回原始内容,然后让客户端Java

javascript - 什么时候需要转义正则表达式字符集中的字符([] 内)?

我在括号内转义的规则是否与我在括号外所做的不同?例如,我应该在括号内转义?吗?是/blah[^?]/还是/blah[^\?]/括号的规则是否不同,或者我应该转义两者吗? 最佳答案 括号中唯一需要转义的是右括号,如果不是首字母或末尾则为减号,如果是首字母则为帽子,AFAIK。显然,还有反斜杠本身。原因是,这些是括号内唯一具有特殊意义的字符。右括号结束括号,中间字符串减号表示范围,初始帽子否定括号类。其他一切都应该按字面解释。反斜杠是转义字符,因此您需要双反斜杠来匹配文字反斜杠。 关于jav

javascript - 转义 < 和 > 是否足以阻止 XSS 攻击?

我确定这个问题的答案是否定的,但我似乎无法找到一种简单地转换的方法。和>至<和>不会完全阻止反射型和持久型XSS。我不是在谈论CSRF。如果这不能阻止XSS,您能否举例说明如何绕过此防御措施? 最佳答案 并非所有XSS攻击都包含,具体取决于插入数据的位置。https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet#Why_Can.27t_I_Just_HTML_Entity_Encode_Untrusted_Data.

php - 如何从 PHP 中为 javascript 转义字符串?

让我们想象一个表单编辑器,它可以编辑可用的值。如果数据包含"字符(双引号)它“破坏”了HTML代码。我的意思是,让我们检查代码:所以我生成HTML:onclick="vara=prompt('Newvalue:','');if(a!=null)....结果是onclick="vara=prompt('Newvalue:','aaaa\"aaa');if(a!=null){v....这使得JS无法工作,从而破坏了代码。用单引号'它工作正常。mysqlrealescape做同样的。如何转义任何字符串以免破坏javascript?json_encode看起来不错,但我一定是做错了什么,它仍然

Javascript - 替换字符串文字中的转义字符

我正在尝试替换Javascript字符串文字中的反斜杠(转义)字符。我需要用双反斜杠替换它,以便我可以进行重定向:varnewpath='file:///C:\funstuff\buildtools\viewer.html'.replace(/\\/g,"\\");window.location=newpath;不过,好像没有结果。在Javascript处理反斜杠之前,我没有正确转义反斜杠的选项。如何将(\)替换为(\\)以使Javascript满意?谢谢,德里克 最佳答案 如果它是文字,您需要在Javascript看到它们之前转义

javascript - 如何修复转义的 JSON 字符串 (JavaScript)

远程服务器(不受我控制)发送一个JSON字符串,其中所有字段名和值都已转义。例如,当我执行JSON.stringify(res)时,结果如下:"{\"orderId\":\"123\"}"现在,当我执行alert(res.orderId)时,它显示未定义。我认为这是因为逃脱了“s。我该如何解决这个问题? 最佳答案 假设是显示的实际值然后考虑:twice_json='"{\\"orderId\\":\\"123\\"}"'//(ingoretheextraslashes)json=JSON.parse(twice_json)//=>'

javascript - 不使用 concat 方法添加两个数组

这是我想做的一个例子functiontest(r){vararr=['d','e','f'];r.push(arr);/*MoreCode*/returnr;}varresult=test(['a','b','c']);alert(result.length);//Iwantthistoalert6我需要做的是传入一个数组并将其他数组附加到它的末尾,然后返回该数组。由于通过引用传递,我不能使用array.concat(array2);。有没有一种方法可以做到这一点,而无需使用类似for循环的方法来逐个添加元素。我尝试了r.push(arr.join());之类的方法,但这也不起作用。另

javascript - 如何正确转义 css/js 属性选择器 [attr=value] 中的属性值?

我应该如何转义css/js属性选择器[attr=value]中的属性?具体来说,这是正确的吗?document.querySelector('input[name="test[33]"]')我正在寻找执行此操作的“标准方法”(如果有的话),因为我不希望Sizzle使用繁重的执行后备函数 最佳答案 是的,这是一种正确的方法。SelectorsLevel3specification陈述如下:AttributevaluesmustbeCSSidentifiersorstrings.您问题中的示例使用字符串作为属性值。“标识符”定义如下:I

javascript - 如何转义 JSON 中的反斜杠?

我正在使用Firefox的原生JSON.parse()来解析一些包含正则表达式作为值的JSON字符串,例如:vartest=JSON.parse('{"regex":"/\\d+/"}');上面的'\d'会引发JSON.parse()异常,但在我使用eval时工作正常(这是我试图避免的)。我想要的是在正则表达式中保留“\”——是否有其他一些JSON友好的方式来转义它? 最佳答案 你需要转义已经存在的转义反斜杠:)像这样:vartest=JSON.parse('{"regex":"/\\\\d+/"}');你可以在这里测试一下:htt